[SQL 4.1] Mysql SELECT 함수
📃

[SQL 4.1] Mysql SELECT 함수

Lecture
CS
태그
mysql
sql
cs
public
완성
N
생성일
Mar 18, 2024 07:53 AM
LectureName
MySQL

MySQL SELECT 구문에 대한 설명

MySQL에서 SELECT 구문은 데이터베이스에서 데이터를 검색하는 데 사용됩니다. 이 구문은 다양한 옵션을 사용하여 데이터를 검색하고 필터링 할 수 있습니다. 아래는 MySQL SELECT 구문에 대한 자세한 설명과 예시입니다.

기본 구문

가장 기본적인 SELECT 구문은 다음과 같습니다.
SELECT * FROM {table_name};
위의 구문은 특정 테이블에서 모든 열을 선택해 반환합니다. 이때, 테이블 이름은 {table_name}으로 대체되어야 합니다.

열 선택

만약 특정한 열만 검색하고 싶다면, SELECT 구문에서 사용할 열 이름을 지정해주면 됩니다. 예를 들어, 다음과 같이 작성할 수 있습니다.
SELECT {column1}, {column2} FROM {table_name}; #조회하는 컬럼명의 이름을 임의로 바꿀때 SELECT id as user_id, name, pwd FROM MEMBER; SELECT id "user id", name, pwd FROM MEMBER; #as 생략 가능
위의 구문은 {table_name}에서 {column1}과 {column2} 열만 선택해 반환합니다.

행 필터링

검색하려는 행을 필터링하려면 WHERE절을 사용할 수 있습니다. 예를 들어, 다음과 같이 작성할 수 있습니다.
SELECT * FROM {table_name} WHERE {column_name} = {value};
위의 구문은 {table_name}에서 {column_name}열이 {value}인 모든 행을 선택해 반환합니다.
 
다음은 MySQL SELECT 구문에서 연산자를 사용하는 예제입니다.
-- WHERE 절에서 비교 연산자 사용 예제 SELECT * FROM {table_name} WHERE {column_name} > {value}; -- WHERE 절에서 논리 연산자 사용 예제 SELECT * FROM {table_name} WHERE {column_name1} > {value1} AND {column_name2} < {value2}; -- WHERE 절에서 IN 연산자 사용 예제 SELECT * FROM {table_name} WHERE {column_name} IN ({value1}, {value2}, {value3}); -- WHERE 절에서 LIKE 연산자 사용 예제 SELECT * FROM {table_name} WHERE {column_name} LIKE '{value}%'; -- WHERE 절에서 NULL 값 검색 예제 SELECT * FROM {table_name} WHERE {column_name} IS NULL; -- WHERE 절에서 NOT 연산자 사용 예제 SELECT * FROM {table_name} WHERE NOT {column_name} = {value}; -- SELECT 구문에서 COUNT 함수 사용 예제 SELECT COUNT(*) FROM {table_name}; -- SELECT 구문에서 AVG 함수 사용 예제 SELECT AVG({column_name}) FROM {table_name};
 

SELECT 구문에서의 GROUP BY, HAVING, ORDER BY

MySQL SELECT 구문에서 GROUP BY, HAVING, ORDER BY 절은 각각 다음과 같이 사용됩니다.

GROUP BY

GROUP BY 절은 특정 열을 기준으로 행을 그룹화합니다. 그룹화된 행은 GROUP BY 절에 지정된 열의 고유한 값을 가집니다.
SELECT {column1}, {column2}, ... FROM {table_name} GROUP BY {column1}, {column2}, ...;
위의 구문에서 SELECT 절의 열은 GROUP BY 절에 지정된 열, 또는 집계 함수로만 구성될 수 있습니다.

HAVING

HAVING 절은 GROUP BY 절로 그룹화된 행을 필터링하는데 사용됩니다. WHERE 절은 그룹화되기 전에 행을 필터링하는 반면, HAVING 절은 그룹화된 후에 필터링합니다.
SELECT {column1}, {column2}, ... FROM {table_name} GROUP BY {column1}, {column2}, ... HAVING {condition};
위의 구문에서 HAVING 절은 집계 함수와 비교 연산자, 논리 연산자 등을 사용하여 그룹화된 행을 필터링합니다.

ORDER BY

ORDER BY 절은 검색된 결과를 정렬하는데 사용됩니다. 기본적으로는 오름차순으로 정렬하지만, DESC 키워드를 사용하여 내림차순으로 정렬할 수 있습니다.
SELECT {column1}, {column2}, ... FROM {table_name} ORDER BY {column1} ASC|DESC, {column2} ASC|DESC, ...;
위의 구문에서 ASC 키워드는 오름차순으로 정렬하고, DESC 키워드는 내림차순으로 정렬합니다. ORDER BY 절은 SELECT 구문의 마지막 부분에 위치합니다.

GROUP BY, HAVING, ORDER BY를 사용한 예제

예시 1
다음은 GROUP BY, HAVING, ORDER BY 절이 모두 사용된 예제입니다.
SELECT department, COUNT(*) FROM employees WHERE salary > 50000 GROUP BY department HAVING COUNT(*) > 5 ORDER BY department DESC;
위의 구문은 employees 테이블에서 급여가 50000 이상인 모든 직원들의 부서와 부서별 직원 수를 반환합니다. 부서별 직원 수가 5명 이상인 부서만 반환하며, 부서 이름을 기준으로 내림차순으로 정렬합니다.
 
 
예시 2
notion image